package algorithm;

public class leetcode_0050 {
    public double myPow(double x, int n) {
        if(n==-2147483648) return 1/(x*pow(x,2147483647));
        if(n<0) return 1/pow(x,n*-1);
        else return pow(x,n);
    }
    public double pow(double x,int n){
        if(n==0) return 1;
        if(n==1) return x;
        if(n%2==1) {
            double a=pow(x,n/2);
            return x*a*a;
        }
        else{
            double a=pow(x,n/2);
            return a*a;
        }
    }
}
